// 身份验证
// http://blog.fens.me/nodejs-express-passport/ 解决登陆认证的问题
import passport from 'koa-passport'
import LocalStrategy from 'passport-local'
// 用户表
import UserModel from '../../dbs/models/user'
// 配置策略. (具体操作)
passport.use(new LocalStrategy(async function (username, password, done) {
  // 自己封装的findOne
  let result = await UserModel.findOne(username)
  // 存在
  if (result != null) {
    // 密码对不对
    if (result.password === password) {
      return done(null, result)
    } else {
      return done(null, false,'密码错误')
    }
  } else {
    // 不存在
    return done(null, false,'用户不存在')
  }
}))

// 保存用户
passport.serializeUser(function (user, done) {
  done(null, user)
})
// 删除用户
passport.deserializeUser(function (user, done) {
  return done(null, user)
})

export default passport